# -*- coding: utf-8 -*-

import numpy as np;

a = np.random.randint( 0,10,size=(4,5) );

'''
数组求和 
axis 0行1列

关于精度 当目前使用数据类型不够时会出现损耗,解决的方法就是使用 dtype指定精度更高的类型
'''
sum4a = np.sum( a );
sum4a_hang = np.sum( a, axis=0 );
sum4a_lie = np.sum( a, axis=1 );

b =np.ones(1000000, dtype=np.float32) * 1.1
sum4b = np.sum(b, dtype=np.double);

'''
数组求平均

'''
mean4a = np.mean( a,axis=1 );
mean4a_1 = np.average( a,axis=1 ); # 关注weights参数
mean4b = np.mean(b, dtype=np.double);


'''
std() 标准差
var() 方差
有axis、out及dtype 等参数。
'''


'''
改变数组形状
'''
a1 = np.floor(10*np.random.random((3,4)));
a1.ravel() #多维数组转一维

a1.shape = (6, 2)
a1.transpose() # 转置 => 行列转换

a1.resize(2,6) # 重新定义 列&行

a2 = np.floor(10*np.random.random((2,2)))
b2 = np.floor(10*np.random.random((2,2)))

ab2v = np.vstack( ( a2, b2 ) ); # 延 y轴堆叠
ab2h = np.hstack( ( a2, b2 ) ); # 延 x轴合并堆叠


'''
最值技术
min(), max()
argmax(), argmin() 最值下标
'''